/**
 * @文件名 LogManagerAction.java
 * @包名 com.ykfk.cngrain.tbw.action
 * @说明 用户登录界面入口
 * @作者 wdfang
 * @时间 2013-1-29 下午1:51:19
 * @版本 V1.0
 */ 
package com.fang.yttz.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Lang;
import org.nutz.mvc.View;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.view.JspView;
import org.nutz.mvc.view.ViewWrapper;

import com.fang.yttz.BaseAction;
import com.fang.yttz.LoginSessionListener;
import com.fang.yttz.SysParameter;
import com.fang.yttz.model.Tbuser;
import com.fang.yttz.service.manager.LogManagerService;
import com.fang.yttz.util.ValidateUtil;

/**
 * @类名 LogManagerAction
 * @描述 登录界面入口
 * @作者 wdfang
 * @日期 2013-1-29 下午1:51:19
 * ========修改日志=======
 *
 */
@IocBean
public class LogManagerAction extends BaseAction {
	@Inject
	private LogManagerService logManagerService;
	/**
	 * 
	 * @名称 loginAction
	 * @描述 登录入口
	 * @参数 @param deviceid
	 * @参数 @param userpwd
	 * @参数 @param request
	 * @参数 @return
	 * @返回值 View
	 * @作者 wdfang
	 * @时间 2013-1-30 上午12:33:38
	 */
	@At("/login")
	public View loginAction(String loginid, String userpwd, HttpServletRequest request){
		String flag = request.getParameter("loginState");
		if(ValidateUtil.isEmpty(loginid)){
			//登录id不为空
			request.setAttribute("msg", "用户号没有填写");
			return new ViewWrapper(new JspView("/login.jsp"), "登录id不为空");
		}
		Tbuser tbManager = logManagerService.getTbuser(loginid);
		if(tbManager!=null){
			if(Lang.md5(userpwd).equals(tbManager.getPwd())){//密码一致
				boolean isonline = LoginSessionListener.isOnline(request.getSession(), loginid);
				if(flag!=null&&flag.equals("true")){//第二次确认登录，开始踢人操作
					LoginSessionListener.isAlreadyEnter(request.getSession(), loginid);
					request.setAttribute("user", tbManager);
					request.getSession().setAttribute(SysParameter.sessionObj, tbManager);//添加用户信息到session
					return new ViewWrapper(new JspView("/behind/index_main.jsp"), "第二次确认登录，开始踢人操作");
				}else if(isonline){//在线跳到 踢人确定页面
					request.setAttribute("loginid", loginid);
					request.setAttribute("userpwd", userpwd);
					return new ViewWrapper(new JspView("/behind/logincomfirm.jsp"), "在线跳到 踢人确定页面");
				}else {//不在线 直接登录
					request.getSession().setAttribute(SysParameter.sessionObj, tbManager);//添加用户信息到session
					request.setAttribute("user", tbManager);
					return new ViewWrapper(new JspView("/behind/index_main.jsp"), "不在线 直接登录");
				}
			}
			//密码不一致
			request.setAttribute("msg", "用户密码填写错误");
			return new ViewWrapper(new JspView("/login.jsp"), "密码不一致");
		}
		//登录id不存在
		request.setAttribute("msg", "用户号填写错误");
		return new ViewWrapper(new JspView("/login.jsp"), "登录id不存在");
	}
	/**
	 * 
	 * @名称 reRefererAction
	 * @描述 刷新时直接跳转
	 * @参数 @return
	 * @返回值 String
	 * @作者 wdfang
	 * @时间 2013-1-31 上午1:08:07
	 */
	@At("/reReferer")
	@Ok("jsp:/behind/index_main.jsp")
	public String reRefererAction(HttpSession session) {
		return SUCCESS;
	}
	/**
	 * 
	 * @名称 relogAction
	 * @描述 重新登陆即：跳转到登录页 并清除session
	 * @参数 @return
	 * @返回值 String
	 * @作者 wdfang
	 * @时间 2013-1-31 上午1:08:07
	 */
	@At("/relogin")
	@Ok("jsp:/login.jsp")
	public String relogAction(HttpSession session) {
		if(session!=null)
			session.invalidate();
		return SUCCESS;
	}
}
